1. Field of the Invention
The present invention generally relates to a system design for large scaled integrated circuits, and more specifically to a microprogram controlled microprocessor capable of executing a floating point arithmetic operation.
2. Description of Related Art
Hitherto, in case of executing a floating point arithmetic operation, various kinds of standards which define a format of data, exception, etc. have been known. In the field of microprocessors, the floating point standard IEEE P754 defined by the IEEE has become a dominant standard. In this standard, as shown in FIG. 1A, a numerical value is represented in the form in which it is divided into an exponent and a mantissa in the normalized format, (so that the most significant bit of the mantissa is made "1"; According to the data format defined by the IEEE P754, the point in the mantissa is put between the most significant bit and the next more significant bit of the mantissa, so that the most significant bit of the mantissa becomes an integer bit of the mantissa, namely, indicates an integer portion of the mantissa).
As shown in FIG. 1B, in addition, a numerical value expressible in the standard floating point representation is within an extent of "1" to a value obtained by subtracting "1" from a maximum value of the exponent (when all bits of the exponent are "1"). Data expressed when all bits of the exponent are "1" is defined to indicate a special condition different from a numerical value, for example, infinity or negation. On the other hand, data when all bits of the exponent are zero is used to indicate a very small numerical value which is larger than "0" but smaller than a minimum numerical number expressible in the normalized number (when the exponent indicates "1" and only the integer bit of the mantissa is "1" and the other bits of the mantissa are "0") ("denormal number").
In the case of designing a microprocessor which executes the floating point arithmetic operation in the microprogram controlled manner, consideration must be paid to the case in which numerical values other than normalized numbers or signs are inputted. When data such as infinity other than numerical values is inputted, it is sufficient if the operation is branched to another routine as an exception processing, without performing a normalizing operation. However, if data such as a "denormal number", which is a numerical value but is not normalized, is inputted, it is, in some case, not possible to normalize the data without modification.
In this case, it is an ordinary manner that if an inputted source operand is an unnormalized number, the source operand is converted into a normalized number by using a subroutine for normalization, and thereafter, an arithmetic operation is executed.
In this manner, however, it is not possible to execute the arithmetic operation until it has been judged that the inputted source operand is a normalized number. In other words, the step number of microprograms must be increased because the unnormalized numbers may be inputted. As a result, the speed of the arithmetic operation for normalized numbers has been adversely made slow due to the unnormalized numbers which is generally considered to be very small in probability of input or appearance.